﻿namespace ConsoleApp1.advance;

// 属性（Property） 是类（class）、结构（structure）和接口（interface）的命名（named）成员。
// 类或结构中的成员变量或方法称为 域（Field）。属性（Property）是域（Field）的扩展，且可使用相同的语法来访问。它们使用 访问器（accessors） 让私有域的值可被读写或操作。
// 属性（Property）不会确定存储位置。相反，它们具有可读写或计算它们值的 访问器（accessors）。

class Student{

    private string code = "N.A";
    private string name = "not known";
    private int age = 0;

    // 声明类型为 string 的 Code 属性
    public string Code{
        get{
            return code;
        }
        set{
            code = value;
        }
    }
   
    // 声明类型为 string 的 Name 属性
    public string Name{
        get{
            return name;
        }
        set{
            name = value;
        }
    }

    // 声明类型为 int 的 Age 属性
    public int Age{
        get{
            return age;
        }
        set{
            age = value;
        }
    }
    public override string ToString(){
        return "Code = " + Code +", Name = " + Name + ", Age = " + Age;
    }
}
class ExampleDemo{
    public static void TestMain(){
        // 创建一个新的 Student 对象
        Student s = new Student();
            
        // 设置 student 的 code、name 和 age
        s.Code = "001";
        s.Name = "Zara";
        s.Age = 9;
        Console.WriteLine("Student Info: {0}", s);
        // 增加年龄
        s.Age += 1;
        Console.WriteLine("Student Info: {0}", s);
        Console.ReadKey();
    }
}